﻿/**
 * \file FabriqueUniteEII.cs
 * \brief Classe FabriqueUniteEII
 * \author ARTUR Vincent
 * \author LAPERDRIX Pierre
 * \version 1.0
 */
namespace Implem
{
	using Interfaces;
	using System;
	using System.Collections.Generic;
	using System.Linq;
	using System.Text;

    /**
     * \class FabriqueUniteEII
     * \brief Fabrique d'unites de la civilisation EII
     */
	public class FabriqueUniteEII : IFabriqueUnite
	{
        /*!< Singleton de la fabrique */
        public static FabriqueUniteEII INSTANCE = new FabriqueUniteEII();

        /**
         * \fn private FabriqueUniteEII()
         * \brief Constructeur de FabriqueUniteEII
         */
        private FabriqueUniteEII() { }

        /**
         * \fn public virtual IDirecteur creerDirecteur(Joueur j, Position p)
         * \brief Retourne un directeur
         * \param j le joueur proprietaire
         * \param p la position de l'unite
         * \return l'unite
         */
        public virtual IDirecteur creerDirecteur(Joueur j, Position p)
		{
            return new DirecteurEII(j,p);
		}

        /**
        * \fn public virtual IEtudiant creerEtudiant(Joueur j, Position p)
        * \brief Retourne un etudiant
        * \param j le joueur proprietaire
        * \param p la position de l'unite
        * \return l'unite
        */
        public virtual IEtudiant creerEtudiant(Joueur j, Position p)
		{
            return new EtudiantEII(j,p);
		}


        /**
        * \fn public virtual IEnseignant creerEnseignant(Joueur j, Position p)
        * \brief Retourne un enseignant
        * \param j le joueur proprietaire
        * \param p la position de l'unite
        * \return l'unite
        */
        public virtual IEnseignant creerEnseignant(Joueur j, Position p)
		{
            return new EnseignantEII(j,p);
		}

	}
}

